Performing dynamic simulations within virtualized environment

ABSTRACT

A method and apparatus for and article of manufacture for simulating workloads experienced by multiple partitions in a virtualized system are provided. A master workload driver initiates, coordinates and regulates one or more workload drivers that execute one or more workload simulation tasks in a logical partition. Further, each workload driver may be configured to report a measure of performance regarding the workload to the master control driver where results of many workload drivers may be correlated and analyzed. A configuration file specifies the characteristics of each simulation. Further, the rate and nature of workloads may be adjusted dynamically during a given simulation to model the performance under different real-world scenarios of different computational loads that may be experienced by the virtualized system.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of co-pending U.S. patent applicationSer. No. 11/241,696, filed Sep. 30, 2005, which is herein incorporatedby reference in its entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to data processing. Moreparticularly, the present invention relates to techniques forbenchmarking the performance of multiple logical partitions in alogically partitioned computer system.

2. Description of the Related Art

Virtualization is a technique used to divide a collection of physicalcomputing resources into one or more logical partitions. In avirtualized environment, the computing resources of many systems anddata storage units may be gathered into “pools” of computing power thatcan easily be allocated as demands on the system change. From such a“pool,” any number of partitions may be defined. Thus, virtualizationprovides an abstraction of computing power, data storage, networkcommunications, and other computing resources.

In a virtualized environment, each partition behaves in some respects asa separate computer system. Virtualization allows users to derive morevalue from a computer system by increasing both system utilization andthroughput. Moreover, because each partition is an abstraction of aphysical computer system, the resources allocated to a given partitionmay easily be modified. Similarly, the physical resources underlying thepartitions may be changed or expanded. Thus, a logically partitionedenvironment may be modified from either side (i.e., from the partitionside or the hardware side) by modifying a logical partition or bymodifying the underlying physical resources available to the virtualizedenvironment.

As virtualized systems have become more prevalent, a need has arisen todemonstrate and characterize the performance of a virtualizedenvironment. For example, a seller or manufacturer of a virtualizedsystem may wish to provide a demonstration to potential buyers. Such ademonstration may include performing a workload simulation using thevirtualized system. Similarly, potential purchasers may require certain,provable performance characteristics of the virtualized system. To bemeaningful, a benchmark, or system workload simulation performed againsta virtualized system, must provide dynamic, repeatable, and verifiablemeasures of performance both for an individual partition, and for thesystem as a whole.

However, unlike current techniques used to perform workload simulationson a discrete computer system, virtualized environments require thatmultiple partitions participate in a workload simulation concurrently.Further, the workloads experienced by individual partitions should beable to be dynamically changed throughout a simulation. At the sametime, system performance analysis (i.e. benchmarks) requires a highlycontrolled environment, where dynamic fluctuations in the workloadprocessed by each partition may be carefully regulated and recorded.Current techniques for system performance benchmarking, however, havebeen largely ad-hoc attempts to correlate multiple workload simulationsperformed by a set of logical partitions. For example, an administratormay configure each partition to run a workload simulation individually.From this, some measure of overall system performance may be estimated.

At best however, this approach merely guesses at the actual performanceof a virtualized system from a series of disconnected workloadsimulations. At worst, this approach devolves into a cumbersome taskthat forces a system administrator to attempt to coordinate theperformance of workload simulations running on each partition, and thenattempt some meaningful interpretation or measure of overall systemperformance. In any event, this ad-hoc approach of running independentsimulations in multiple partitions fails to provide dynamic, repeatable,and verifiable measures of performance for virtualized environments.

Accordingly, there remains a need for workload simulation andbenchmarking tools to evaluate the performance of a logicallypartitioned system.

SUMMARY OF THE INVENTION

Embodiments of the invention provide, among other things, a method, acomputer-readable medium, and an apparatus for performing dynamicworkload simulations in virtualized environment.

One embodiment provides a method of performing a dynamic workloadsimulation. The method generally includes initiating a master controldriver configured to coordinate the execution of one or more workloaddrivers on a plurality of logical partitions, wherein each logicalpartition provides a virtual computing system that operatesindependently from a collection of physical hardware and independentlyfrom other logical partitions. The method generally further includesinitiating the execution of the one or more workload drivers on theplurality of logical partitions, wherein each respective workload driveris configured to inject a workload into one of the plurality of logicalpartitions, and still further includes recording a measure ofperformance transmitted from each respective workload driver to themaster control driver regarding the performance of the workload.

Another embodiment of the invention provides a computer-readable mediumcontaining a program which, when executed, performs operations. Theoperations may generally include initiating a master control driverconfigured to coordinate the execution of one or more workload driverson a plurality of logical partitions, wherein each logical partitionprovides a virtual computing system that operates independently from acollection of physical hardware and independently from other logicalpartitions. The operations may generally include initiating theexecution of the one or more workload drivers on the plurality oflogical partitions, wherein each respective workload driver isconfigured to inject a workload into one of the plurality of logicalpartitions, and may further include recording a measure of performancetransmitted from each respective workload driver to the master controldriver regarding the performance of the workload.

Another embodiment of the invention provides a system for performing adynamic workload simulation. The system generally includes a virtualizedcomputing system, wherein the computing system comprises a collection ofphysical hardware allocated to one or more logical partitions, whereineach logical partition provides a virtual computing system that operatesindependently from a collection of physical hardware provided by avirtualized system and independently from other logical partitions. Thesystem generally further includes a master control driver configured tocoordinate the execution of one or more workload drivers in theplurality of logical partitions, wherein each respective workload driveris configured to inject a workload into one of the plurality of logicalpartitions, and further configured to record a measure of performancetransmitted from each respective workload driver to the master controldriver regarding the performance of the workload injected into arespective logical partition.

BRIEF DESCRIPTION OF THE DRAWINGS

So that the manner in which the above recited features of the inventioncan be understood, a more particular description of the invention,briefly summarized above, may be had by reference to the exemplaryembodiments that are illustrated in the appended drawings. Note,however, that the appended drawings illustrate only typical embodimentsof this invention and should not, therefore, be considered limiting ofits scope, for the invention may admit to other equally effectiveembodiments.

FIG. 1 is a block diagram illustrating logical and physical componentsof a virtualized system environment, according to one embodiment of theinvention.

FIG. 2 is a block diagram illustrating exemplary software componentsused to conduct a dynamic workload simulation, according to oneembodiment of the invention.

FIG. 3 is a block diagram illustrating a master control driverperforming a dynamic workload simulation, according to one embodiment ofthe invention.

FIG. 4A illustrates a trigonometric injection rate method used tocontrol workload activity of a workload driver, according to oneembodiment of the invention.

FIG. 4B illustrates a square-wave injection rate method, used to togglethe state of a workload driver, according to one embodiment of theinvention.

FIG. 5 illustrates a method for performing a dynamic workload simulationon a virtualized system, according to one embodiment of the invention.

FIG. 6 illustrates the operations of a workload driver during a dynamicworkload simulation on a virtualized system, according to one embodimentof the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention generally provides methods for performing dynamicworkload simulations in a virtualized environment. In one embodiment, adynamic simulation may be performed using a master control driver, oneor more workload drivers, and data collection routines. Each of thesecomponents is described in detail below. Typically, the master controldriver orchestrates the performance of the simulation by controlling theone or more workload drivers. Each workload driver includes a sequenceof requests, such as commands, I/O operations, and subroutine-librarycalls that constitute the work being done by a logical partition duringa simulation. The workload performed by a driver is configured to berepeatable (i.e., it may be “injected” to a given logical partition manytimes) and may be used to measure the performance effect of changes tothe system, including the concurrent injection of different workloads indifferent logical partitions.

During a simulation, the master control driver may vary the injectionrate used by a given workload driver. Thus, each workload driver maydynamically vary its impact on the system over the course of asimulation. This may result from a system administrator modifying theinjection rate using a dynamic workload simulation console. A simulationmay be configured in advance and dynamic workload levels may bespecified using a configuration file created for a given simulationevent. Each workload driver may also be configured with performance datacollection routines. Two performance measurements include averageresponse time (i.e., how long to complete a task) and throughput (i.e.,a measure of work per unit time).

The following description references embodiments of the invention. Theinvention, however, is not limited to any specifically describedembodiment; rather, any combination of the following features andelements, whether related to a described embodiment or not, implementsand practices the invention. Moreover, in various embodiments theinvention provides numerous advantages over the prior art. Althoughembodiments of the invention may achieve advantages over other possiblesolutions and the prior art, whether a particular advantage is achievedby a given embodiment does not limit the scope of the invention. Thus,the following aspects, features, embodiments and advantages areillustrative of the invention and are not considered elements orlimitations of the appended claims; except where explicitly recited in aclaim. Similarly, references to “the invention” should neither beconstrued as a generalization of any inventive subject matter disclosedherein nor considered an element or limitation of the appended claims;except where explicitly recited in a claim.

One embodiment of the invention is implemented as a program product foruse with a computer system such as, for example, the computer system 100shown in FIG. 1 and described below. The program product definesfunctions of the embodiments (including the methods) described hereinand can be contained on a variety of computer-readable media.Illustrative computer-readable media include, without limitation, (i)information permanently stored on non-writable storage media (e.g.,read-only memory devices within a computer such as CD-ROM disks readableby a CD-ROM drive); (ii) alterable information stored on writablestorage media (e.g., floppy disks within a diskette drive or hard-diskdrive); and (iii) information conveyed across communications media,(e.g., a computer or telephone network) including wirelesscommunications. The latter embodiment specifically includes informationshared over the Internet or other computer networks. Suchcomputer-readable media, when carrying computer-readable instructionsthat perform methods of the invention, represent embodiments of thepresent invention.

In general, software routines implementing embodiments of the inventionmay be part of an operating system or part of a specific application,component, program, module, object, or sequence of instructions such asan executable script. Such software routines typically comprise aplurality of instructions capable of being performed using a computersystem. Also, programs typically include variables and data structuresthat reside in memory or on storage devices as part of their operation.In addition, various programs described herein may be identified basedupon the application for which they are implemented. Those skilled inthe art recognize, however, that any particular nomenclature or specificapplication that follows facilitates a description of the invention anddoes not limit the invention for use solely with a specific applicationor nomenclature. Furthermore, application programs are described hereinusing discrete modules or components interacting with one another. Thoseskilled in the art recognize, however, that different embodiments maycombine or merge such components and modules in many different ways.

Furthermore software applications described herein may be configured toexecute on existing computer systems, e.g., desktop computers, servercomputers, laptop computers, tablet computers, and the like. The dynamicperformance simulation applications described herein, however, are notlimited to use with any particular computing environment, and may beadapted to take advantage of new computing systems as they becomeavailable.

FIG. 1 is a block diagram illustrating logical and physical componentsof a virtualized environment 100, according to one embodiment of theinvention. As shown, the virtualized environment 100 includes a dynamicsimulation management console 102 and a master control driver 103, andvirtualized system 150.

In one embodiment, the virtualized system 150 includes a collection ofhardware resources 105 such as one or more physical processors (CPUs)110, memory 115, network interface 120, and storage 125 (e.g., IDE orSCSI disk systems). The virtualized system 150 includes any suitabletype of computer system capable of supporting logical partitioning, suchas a network server, mainframe computer, and the like. In oneembodiment, the computer system 150 is a Power5 computer systemavailable from International Business Machines (IBM) of Armonk, N.Y. Thedynamic workload simulations described herein, however, are not limitedto any particular virtualized computing environment, and may be adaptedto take advantage of new computing systems that support virtualization,as they become available.

In one embodiment, the system resources 105 may be allocated among thelogical partitions 135 according to any suitable allocation arrangement.Each logical partition 135 may be configured using a partitiondefinition 130. The partition definition 130 specifies the resourcesallocated to a given logical partition 135. Once defined, a logicalpartition 135 operates as a separate computer system running on thevirtual resources allocated to the partition 135.

Underlying the virtual resources 130 and logical partitions 135 arephysical hardware resources 105. The partition definition 130 maps thevirtual resources assigned to a logical partition 135 to physicalhardware 105. Additionally, the underlying resources 105 may bededicated to a given partition 135, or may be shared. For example, thevirtual CPU resources allocated to a partition 135 may map to adedicated one or more of the system processors 110 or the systemprocessors 110 may be assigned as a resource available to multiplepartitions 135. Similarly, other physical resources 105 (e.g., memory110 network, 120 and storage 125, as well as various other resources,such as I/O devices) may be assigned to the virtual resources of a givenlogical partition 135, as specified in a partition definition 130.

A partition operating system 145 may be installed and configured to runon each logical partition 135. The operating system 145 for a givenpartition 135 executes on the virtual resources independently from theunderlying physical hardware 105 and other logical partitions 135.Further, user applications 140 executing in a logical partition 135 doso within a particular one of the logical partitions 135 and is said to“execute in the partition”, meaning that a user application 140 canaccess only the virtual resources assigned to the given partition 135,and not resources assigned to others. User applications 140 may includeany computer software application available to execute on the partitionoperating system 145. Thus, applications such as web-servers, databases,graphics rendering engines, compilers, and business office suites, (toname just a few common software applications) may be installed andexecuted on a logical partition 135. In one embodiment, the userapplications 140 may include one or more workload drivers executing on agiven partition during the course of a dynamic workload simulation.

The management console 102 and master control driver 103 may beapplications executing on one of the partitions 135, or may be executingon a separate computer system. In one embodiment the master controldriver 103 provides a software application configured to define,orchestrate and control a dynamic workload simulation performed byvirtualized computer system 150. The master control driver 103 may beconfigured to coordinate and control the injection of workload by aworkload driver running in one of the logical partitions 135. Asdescribed above, each workload driver specifies a workload to beperformed by a logical partition 135 during a simulation. The mastercontrol driver 103 may direct a workload driver to “inject” a unit ofwork, according to an injection rate method, described more fully below.The management console 102 provides an interface that allows a systemadministrator to initiate, monitor, control and view the results of agiven simulation. In one embodiment, the actual simulation may beperformed by one or more workload drivers. The interaction between themaster control driver 103 and a plurality of workload drivers isdescribed in greater detail below.

FIG. 2 is a block diagram illustrating exemplary software componentsused to perform a dynamic workload simulation on a virtualized system150, according to one embodiment of the invention. In one embodiment, adynamic workload simulation may be performed using a master controldriver 103 configured to initiate one or more dynamic workload drivers210 on the logical partitions 135. The configuration data 205 mayprovide a script of what actions will be performed during thesimulation. More specifically, the configuration data 205 may specifywhich workload drivers 210 will be initiated, which partitions theworkload drivers 210 will be initiated on, and the sequence in whichthey are initiated. The master control driver 103 may initiate workloadsthat run asynchronously to one another (i.e., a first set of workloaddrivers must complete, before a second group is initiated), and alsoworkloads that run synchronously to one another during a givensimulation.

Additionally, configuration data 205 may specify an “injection ratemethod” that indicates a rate at which the workload activity of aworkload driver 210 will be “injected” into a logical partition 135. Inother words, the injection rate method may be used to specify how aworkload driver 210 will determine when to perform the sequence ofactions associated with that particular workload driver 210. Theinjection rate for a given workload may vary during a simulation,according to messages received from master control driver 103. Twoexemplary injection rate methods are described below in reference toFIGS. 4A and 4B.

In one embodiment, the workload activity performed by a given workloaddriver 210 may include performing a known benchmark such as LINPACKbenchmark (used to measure how quickly a partition can solve a densesystems of linear equations), or by performing a known benchmarkcalculation such as calculating the millions of floating pointoperations per second (“MFLOPS”) capability of a given logical partition135. However, any appropriate performance benchmark may be performed bya workload driver 210.

In another embodiment, the workload driver may provide a scriptedsequence of actions, routines, or calls to perform on the partition 135.For example, a workload driver 210 may be configured to perform asequence of database calls that may be expected of the partition 135 ina production environment, or place a predetermined load on a serverprocess running on the partition 135. By simulating the actions ofproduction applications, the expected performance of the virtualizedsystem 150 may be demonstrated. Further, because the master controldriver 103 orchestrates the activity across all the partitions 135 of avirtualized system 150, dynamic simulations may be repeated andverified, without trying to reproduce a series of ad-hoc simulationsperformed individually on each partition 135.

Furthermore, a dynamic simulation may include a suite of workloaddrivers 210 that perform a combination of benchmark profiles andscripted system activity. For example, while a first partition 135 ₁ isexecuting a sequence of database calls (specified by one workload driver210), the master control driver 103 may initiate another workload driver210 configured to perform a benchmark test (e.g., the LINPAK benchmark)on a second partition 135 ₂. By performing the same benchmark bothbefore and after the workload driver 210 running on the first partition135 has completed the sequence of database calls, differences inperformance may be clearly observed and calculated across all thepartitions 135 of a virtualized system 150.

As described above, the master control driver 103 orchestrates a dynamicsimulation by initiating one or more given workload drivers 210, and theworkload drivers 210 may be configured to perform a task on a specifiedpartition 135. The workload drivers 210 may be further configured tocollect and transmit performance data back to the master control driver103. For example, each logical partition 135 may communicate with themaster control driver 103 using a network address assigned to a virtualnetwork interface. Thus, message passing between a workload driver 210running on logical partition 135 and master control driver 103 may occurusing known network communication protocols (e.g., the TCP/IP protocolsuite).

In one embodiment, the performance data gathered by workload drivers 210may include average response time data and throughput data collected forthe workloads injected into a logical partition 135. The averageresponse time indicates how long a given partition required to completeto a task. Throughput may be reported as a ratio of how many units ofworkload a given partition 135 was able to complete per a given periodof time. However, embodiments of the invention may be configured togather any performance data, either for the logical partition 135, orfor the virtualized system 150, as required to characterize theperformance of the logical partitions 135 and system 150 during a givendynamic workload simulation. In one embodiment, the average responsetime and throughput data may be written to a log file maintained byworkload driver 210 that is transmitted to the master control driver 103after a workload driver completes, or in near-real time during a givendynamic simulation, as needed.

FIG. 3 is a block diagram illustrating a master control driver 103 inthe course of performing a dynamic workload simulation, according to oneembodiment of the invention. As described above, the master controldriver 103 initiates one or more workload drivers 210 on logicalpartitions 135. Illustratively, virtualized system 150 includes threepartitions 135 ₁₋₃ labeled, partition 1, partition 2, and partition 3.As illustrated, the master control driver 103 has initiated instances ofworkload drivers WD(1) and WD(2) on partition 1. Accordingly, theworkload associated with these two workload drivers is being injectedinto partition 1, according to the injection rate method specified forWD(1) and WD(2). At the same time, master control driver 103 hasinitiated an instance of WD(2) on partition 3. Partition 2 is shown inan idle state, meaning no workload has been injected into partition 2.

During the simulation, the management console 102 may be used to observethe progress of the simulation. As the workload drivers 210 injectworkloads into the partitions 135, performance data 325 may be collectedand transmitted from the various workload drivers 210 to the mastercontrol driver 103. In addition, the management console 102 may allow asystem administrator to dynamically modify the workload drivers 210initiated on the virtualized system 150 or to modify the injection rate325 set for a given workload driver 210. The available workloads 310represent a suite of workload drivers that may be available to initiateon the partitions 135. Simulation controls 340 may provide theappropriate graphical or text-based interface that allows a systemadministrator to conduct a simulation.

Additionally, in one embodiment, the master control driver 103 may beconfigured to control the current injection rates 325 of the workloaddrivers 210 operating on partitions 135. By changing the injection rateof a given workload driver 210, the load placed on each individualpartition 135 may be dynamically modified during the course of thesimulation. Thus, a system administrator may simulate a wide variety ofscenarios to test the performance of virtualized system 150 by modifyingboth the types of workload drivers 210 initiated in the partitions 135,along with the workload injection rates used by each of the workloaddrivers. Furthermore, because the workload drivers 230 and injectionrates 325 may be fully characterized before beginning a simulation, theperformance measurements obtained during a simulation may be easilyrepeated or verified.

In one embodiment, the injection rate method and values associated withthat method for each workload driver 210 may be determined fromconfiguration values 215. Two injection rate methods include the sinewave method and square wave method. Depending on the workload activityspecified for a given workload driver 210, either of these injectionrate methods may be appropriate. However, embodiments of the inventionare not limited to sine wave and square wave injection rate methods, andother injection rate methods may be used.

FIG. 4 provides a graphical representation of a sine wave injection ratemethod. In one embodiment, the sine-wave injection rate method may beperformed by software routines that are included with a workload driver210. The routines may be configured to calculate continuous valuesobtained from the trigonometric sine function. Because sine wave valuesmay be calculated with little overhead, the impact from thesecalculations during a dynamic simulation is minimal. Furthermore, theperformance of the system 150 for different levels of workload activitymay be easily obtained by modifying configuration values for the sinewave 400. For example, by modifying values representing the amplitude,frequency and phase of the sine wave 400, the injection rate for theworkload driver may be dynamically modified during a running simulation.As shown in FIG. 4 the sine wave 400 peaks twice within the illustratedtime frame. Accordingly, a first workload is injected at the first peak405, and a second workload is injected at second peak 410. As theworkload driver continues to calculate the sine wave values, additionalworkload injections will occur.

FIG. 4B illustrates a square wave injection method 450. Like the sinewave injection rate method 400, the square wave injection rate methodmay be calculated using software routines performed by the workloaddriver 210. The square wave injection method 450 may be appropriate forcontrolling a workload driver desired to either be “on” or “off” duringthe course of a dynamic simulation. For example, a partition 135 may beconfigured as a server system expected to receives client requests(e.g., HTTP web-page “get-page request”) at some average rate. If theaverage rate represents historical peak rates experienced by ane-commerce provider, the dynamic simulation may be used to measureperformance of the system 150 under an expected peak demand load. Aworkload driver configured to inject workload using the square waveinjection rate method may continuously inject requests at the historicalpeak rate, so long as the square wave 400 is in an “on” state. When thevalue of the square wave 400 transitions to an “off” state the workloaddriver 210 may be configured to cease generating requests. Thus, thesquare wave 400 allows a dynamic simulation to set different workloaddrivers 210 to an “on” or “off” state during the course of thesimulation.

FIG. 5 illustrates a method for performing a dynamic workload simulationon a virtualized system 150, according to one embodiment of theinvention. The method 500 begins at step 510 when the master controldriver 103 retrieves configuration data 205 specifying which workloaddrivers 210 to initiate during the course of a dynamic simulation. Atstep 520, the master control driver 103 may initiate the workloaddrivers 210 specified in the configuration file 205 on the logicalpartitions 135. In response, the workload drivers 210 begin injectingrespective workloads into the partition 135 according to the injectionrate method and workload injection rate specified by workloadconfiguration 215. Once all of the workload drivers 210 are initiatedand injecting workloads, the dynamic simulation is underway. Eachpartition 135 may be performing some scripted activity, or calculatingbenchmark values, as directed by a workload driver 210. As this occurs,the workload drivers 210 may collect performance data (e.g., averageresponse time and throughput).

At step 530, over the course of a simulation, the master control driver103 may be configured to calculate a new injection rate for at leastsome of the workload drivers 210 currently initiated and injectingworkloads within partitions 135. For example, the simulationconfiguration data 205 may specify that the injection rate for a givenworkload should steadily increase, or a system administrator may chooseto dynamically modify an injection rate over the course of a simulation.At step 540, a new workload injection rate may be transmitted to one ofthe workload drivers 210 currently running on a partition 135. At step550, the master control driver 103 may determine whether the injectionrate for another workload driver 210 should be modified. If so, themethod returns to step 530 and steps 530 and 540 may be repeated.

At step 560, the master control driver records any performance dataobtained from a workload driver 210. At step 570, the master controldriver 103 may determine whether a current collection of workloadsshould continue injecting work into the partitions 135. For example, adynamic simulation may be configured to collect a certain amount ofperformance data, or may be configured to run for a predetermined periodof time. If determined affirmatively, then the method 500 may return tostep 530, where the workloads currently initiated may continue to injectwork, and wherein the injection rate method set for a given workloaddriver 210 may be modified, as part of steps 530 and 540.

Otherwise, if a current set of workload activity is complete, then atstep 580, the master control driver 103 may be configured to determineif there are additional workloads to be performed as part of a dynamicsimulation. If so, then the method 500 may return to step 520 andinitiate additional sets of workload drivers 210 on partitions 135.After the master control driver 103 has initiated all of the workloaddrivers and collected performance data, as specified for a given dynamicsimulation, the method 500 terminates.

FIG. 6 illustrates the operations of a workload driver during a dynamicworkload simulation on a virtualized system, according to one embodimentof the invention. At step 610, an instance of the workload driver isinitiated on a logical partition 135, according to configuration data215 specified for the driver. For example, the configuration data 215may indicate the workload performed for a given workload driver 210,along with values indicating an injection rate method, what performancedata to collect, and the like. At step 620, once initiated, the workloaddriver 210 begins to inject workload into a given logical partition 135.As the logical partition performs the injected workload, the workloaddriver 210 gathers performance data at step 630. Steps 620 and 630 maybe repeated until the workload driver receives a new workload injectionrate, or completes a set of tasks specified for the workload driver 210.Thus at step 640, the workload driver 210 may modify a current injectionrate. In one embodiment, the master control driver 103 may be configuredto transmit a new injection rate during the course of a simulation. Ifthe workload driver 210 completes all of the actions specified for thedriver, then at step 650, the workload driver 210 may cease injectingworkload into a given partition 135.

Otherwise, at step 660, the workload driver 210 determines whether anext workload should be generated and injected. For example, using asine-wave injection rate method, the workload driver may pause until thevalue of a sine wave reaches one before injecting another workload.Alternatively, if using a square wave injection method, so long as thesquare wave is set to an “on” state, then step at 660 will be answeredaffirmative and the method returns to step 620. In this case, workloadwill continue to be generated and injected until the workload driverreceives an injection rate message setting the square wave to “off”state.

As described above, embodiments of the invention may be used to improvethe quality of dynamic simulations performed against virtualized system150, to implement marketing demonstrations of virtualizationfunctionality, and to provide for customer verification of theperformance characteristics a virtualized system 150.

Embodiments of the invention provide a master control driver 103configured to orchestrate the activity of one or more workload drivers210. The master control driver 103 coordinates dynamic variations in theinjection rate of a controllable workload against multiple logicalpartitions 135 in a virtualized system 150. Further, the master controldriver 103 allows a system administrator to initiate and controlmultiple workload drivers 210 from a single management console 102.During the course of a dynamic simulation, embodiments of the inventionmay be configured to control the dynamics within each workload via sineand square wave insertion methods. This allows the controlled injectionof workloads processed by real-world business applications, along withthe calculation of industry standard benchmarks. For example, the mastercontrol driver 103 allows a system administrator to demonstrate theperformance of a collection of logical partitions 135, as well as theability to record and analyze the results from workloads initiatedwithin one logical partition 135, in relation to workloads performed inothers. Because the actions of each logical partition 135 may becentrally controlled, embodiments of the invention allow users to createreproducible simulations in the dynamic environment of a virtualizedsystem 150.

While the foregoing is directed to embodiments of the present invention,other and further embodiments of the invention may be devised withoutdeparting from the basic scope thereof, and the scope thereof isdetermined by the claims that follow.

1. A computer-implemented method of performing a dynamic workloadsimulation, comprising: initiating a master control driver configured tocoordinate the execution of one or more workload drivers on a pluralityof logical partitions, wherein each logical partition provides a virtualcomputing system that operates independently from a collection ofphysical computing hardware and independently from other logicalpartitions; initiating the execution of the one or more workloaddrivers, wherein each respective workload driver is configured to injecta workload into one of the plurality of logical partitions; andrecording a measure of performance transmitted from each respectiveworkload driver to the master control driver regarding the performanceof the workload.
 2. The method of claim 1, further comprising, afterinitiating the execution of the one or more workload drivers, injectingthe workload for each respective workload driver according to aninjection rate method.
 3. The method of claim 2 wherein the workloadcomprises, performing a scripted sequence of actions directed toapplications running on the respective logical partition.
 4. The methodof claim 3, wherein sequence of actions comprises performing at leastone or more queries directed to a database management system running onthe respective logical partition.
 5. The method of claim 3, wherein thesequence of actions comprises a plurality of requests, generated at arate specified by the injection rate method, to a server applicationrunning on the respective logical partition.
 6. The method of claim 2,wherein the injection rate method for the respective workload driver isconfigured to inject workload into the respective logical partitionbased on values calculated from a continuous function.
 7. The method ofclaim 2, wherein the injection rate method is configured to injectworkload into a respective logical partition so long as the value of asquare wave is determined to be in an “on” state.
 8. A tangiblecomputer-readable medium containing a program which, when executed,performs operations, comprising: initiating a master control driverconfigured to coordinate the execution of one or more workload driverson a plurality of logical partitions, wherein each logical partitionprovides a virtual computing system that operates independently from acollection of physical computing hardware and independently from otherlogical partitions; initiating the execution of the one or more workloaddrivers, wherein each respective workload driver is configured to injecta workload into one of the plurality of logical partitions; andrecording a measure of performance transmitted from each respectiveworkload driver to the master control driver regarding the performanceof the workload injected into a respective logical partition.
 9. Thecomputer-readable medium of claim 8, wherein the operations furthercomprise, after initiating the execution of the one or more workloaddrivers, injecting the workload for each respective workload driveraccording to an injection rate method.
 10. The computer-readable mediumof claim 9 wherein the workload comprises, performing a scriptedsequence of actions directed to applications running on the respectivelogical partition.
 11. The computer-readable medium of claim 10, whereinsequence of actions comprises performing at least one more queriesdirected to a database management system running on the respectivelogical partition.
 12. The computer-readable medium of claim 10, whereinthe sequence of actions comprises a plurality of requests, generated ata rate specified by the injection rate method, to a server applicationrunning on the respective logical partition.
 13. The computer-readablemedium of claim 9, wherein the injection rate method for the respectiveworkload driver is configured to inject workload into the respectivelogical partition based on values calculated from a continuous function.14. The computer-readable medium of claim 9, wherein the injection ratemethod is configured to inject workload into a respective logicalpartition so long as the value of a square wave is determined to be inan “on” state.
 15. A system for performing a dynamic workloadsimulation, comprising: a virtualized computing system, wherein thecomputing system comprises a collection of physical hardware allocatedto one or more logical partitions, wherein each logical partitionprovides a virtual computing system that operates independently from acollection of physical hardware provided by a virtualized system andindependently from other logical partitions; a master control driverconfigured to coordinate the execution of one or more workload driversin the plurality of logical partitions, wherein each respective workloaddriver is configured to inject a workload into one of the plurality oflogical partitions, and further configured to record a measure ofperformance transmitted from each respective workload driver to themaster control driver regarding the performance of the workload injectedinto a respective logical partition.
 16. The system of claim 15, onceinitiated by the master control driver, each of the one or more workloaddrivers is configured to inject the workload into the respective logicalpartition, according to an injection rate method.